package cn.buk.tms.flight.service;

import cn.buk.api.szkj.dto.eterm.response.EtdzResponse;
import cn.buk.api.szkj.dto.eterm.response.RtpnrResponse;
import cn.buk.tms.entity.order.flight.FlightChangeOrder;
import cn.buk.tms.entity.order.flight.FlightOrder;
import cn.buk.tms.entity.order.flight.FlightRefundOrder;
import cn.buk.tms.entity.misc.TicketSale;

import java.util.Date;
import java.util.List;

/**
 * @author yfdai
 */
public interface EtermService {



  /**
   * 为国内机票改签单生成新编码并校验价格
   */
  void checkPriceOfChangeOrders(final int enterpriseId, final String agentName);

  /**
   * 取消机票订单中的编码
   * @return 1 取消成功
   */
  int cancelFlightOrderPnr(final int enterpriseId, final String agentName, FlightOrder flightOrder, String remark);

  /**
   * 刷新改签单中的PNR编码内容
   * @param enterpriseId 企业id
   * @param username 用户名
   * @param changeOrder 改签单对象
   */
  void refreshChangeOrderPnrDetail(int enterpriseId, String username, FlightChangeOrder changeOrder);

    /**
   * 刷新机票订单中的票号的DETR内容
     */
  void refreshFlightOrderDetrDetail(int enterpriseId, String username, FlightOrder flightOrder);

  /**
   * 刷新改签订单中的DETR内容
   */
  void refreshChangeOrderDetrDetail(int enterpriseId, String username, FlightChangeOrder changeOrder);

  /**
   * 刷新退票单中的票号的DETR
   */
  void refreshRefundOrderDetrDetail(int enterpriseId, String username, FlightRefundOrder orderInfo);

  List<TicketSale> tpr(int enterpriseId, String username, int deviceId, Date tprDate);

  EtdzResponse etdz(int enterpriseId, String username, FlightOrder orderInfo);

  /**
   * 调取编码内容
   */
  RtpnrResponse rt(int enterpriseId, String username, String pnrNo);

  /**
   * 查看Q信箱是否有Q信息
   */
  void qt(int enterpriseId, String username);

  /**
   * 检查是否有FD数据需要下载
   */
  void checkFd(int enterpriseId, String username);


}
